perm filename PUP5.TAL[AP,DBL]1 blob sn#102784 filedate 1974-05-24 generic text, type T, neo UTF8
00100	Automatic Programming Group Meeting, Thursday, May 30.
00200	
00300	
00400	
00500	
00600	
00700	
00800	
00900	
01000	
01100	
01200	
01300			PUP5
01400	Programming-Understanding Program    by   Doug Lenat
01500	
01600	
01700	
01800	
01900	
02000	
02100	
02200	Why existing ideas are insufficient.
02300	The new idea.
02400	Applying it to a nontrivial task.
02500		The task.
02600		An example.
02700		The implementation.
02800		Results.
02900	Conclusions and Suspicions.
03000	
03100	
     

00100	1. Why these won't do Automatic Structured Programming of big programs:
00200		Turing Machines, Production Rules, Markov Algorithms
00300		Frames
00400		Templates
00500		Primitives (and syntactic constraints)
00600		Actors
00700		Demons, Multiple Processes, Alternative Control Contexts,
00800			Alternative Data Contexts, Hypothetical Reasoning
00900		Heterarchy (the magic word of the seventies)
01000		Structured Programming
01100		Assertions versus Pattern-directed invokation of procedurally
01200			embedded knowledge
01300		QLISP, PLANNER, CONNIVER, ...
01400		HACKER, PUP1, PW1, Examples-Program, ...
01500		Hoare, Dijkkkstra, Floyd, ...
01600	
01700	
01800	2. Take the best of each of these, add 1/2 new idea, shake well.
01900		System Organization
02000		The assumption
02100		The idea (actually only about half an idea)
02200			examples
02300		Benefits hoped for
02400	
     

00100	3. Pick a nontrivial programming problem, and try to do it using the idea.
00200	  
00300	    The Task: Write CF, a miniature version of JUMBO, a miniature
00400	        version of Winston's Concept Formation program
00500	         Diagram of what PUP5 does; diagram of what CF must do.
00600	    An example: "Some feature of scene E is incompatible with some
00700	         feature of the known scene G"
00800	         How a human handles this
00900	         How PUP5 handles this
01000	    Implementation: The organization of the PUP5 system
01100	         Amount of problem-specific info, and an example
01200	         Amount of programming knowledge, and an example
01300	         Confessions: Kludges, Direct function calls, Functions,
01400	                      Natural Language Front End, Elegance vs Efficiency
01500	         Program description: Size, Core, Time, Complexity
01600	    Results
01700	         What went in (user-PUP5  dialog)
01800	         What came out (the final CF program it produced)
01900	              Efficiency, Style, Length;
02000	              Surprise: CF, too, understands what it's doing!!
02100	         What else could come out (now; with a little coaxing; never)
02200	         Is the CF program really stored somewhere inside PUP5?
02300	              somewhere  inside the user?
02400	
02500	
02600	4. Conclusions
02700	    Was it worth 8 months?  Was it worth this one talk?
02800	    Was it the right way to solve the problem? Was it the right problem?
02900	    Future work:
03000	         summer: several more programs turned out, more faithful to the idea
03100	         theory: what kinds of programs is it well {poorly} suited to?
03200	         destiny: what will happen to the idea? did it ever really exist?
03300	         cooordination with other systems: ease, utility, who's in control?
03400